package com.brian.app_core_libstarter.application.task;

import java.util.List;

/**
 * @ProjectName: PathFinder
 * @Package: com.brian.app_core_libstarter.application.task
 * @ClassName: ITask
 * @Description: 任务的接口 用户需要实现这个接口
 * @Author: Brian
 * @CreateDate: 2019/11/23 21:09
 * @UpdateUser: Brian
 * @UpdateDate: 2019/11/23 21:09
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 */
public interface ITask {

    /**
     * 依赖关系
     * 当前任务中可以 实现此方法 在一个任务中放置其他的依赖任务
     * @return
     */
    List<Class<? extends ThreadTask>> dependsOn();

    /*** 真实执行的方法 使用者需要在这里实现自己任务的具体代码 ***/
    void run();

    boolean isMainThreadTask();

    /*** 如果需要 紧急开始 就返回 true 但是注意这里 只能保证同级别 优先 还是会遵循依赖关系执行 ***/
    boolean needRunAsSoon();

}
